package main

import (
	"blog_go/core"
	_ "blog_go/docs"
	"blog_go/flag"
	"blog_go/global"
	"blog_go/job"
	"blog_go/routers"
	"github.com/sirupsen/logrus"
)

// @title blog_go API文档
// @version 1.0
// @description blog_go API文档
// @host 127.0.0.1:8081
// @BasePath /
func main() {
	//uid := uuid.New()
	//request_id := uid
	//trace_id := uid
	//requestLogger := logrus.WithFields(logrus.Fields{"request_id": request_id, "trace_id": trace_id})
	//requestLogger.Info("something happened on that request")
	//requestLogger.Warn("something not great happened")
	// 初始化配置
	core.InitConf()
	// 初始化日志
	core.InitLogger()
	// 初始化addr
	core.InitAddrDB()
	global.Log.Info("嘻嘻嘻")
	global.Log.Warn("嘻嘻嘻")
	global.Log.Error("嘻嘻嘻")
	// logrus是全局默认的日志
	logrus.Info("全局嘻嘻嘻")
	logrus.Warn("全局嘻嘻嘻")
	logrus.Error("全局嘻嘻嘻")
	// 连接数据库
	core.InitGorm()
	// 连接redis
	core.InitRedis()

	// 命令行参数绑定
	option := flag.Parse()
	if flag.IsWebStop(option) {
		flag.SwitchOption(option)
		return
	}
	// 开启定时任务
	job.InitJob()

	// 启动gin
	addr := global.Conf.System.Addr()
	router := routers.InitRouters()
	global.Log.Infof("blog服务正在运行: %s", addr)
	err := router.Run(addr)
	if err != nil {
		global.Log.Fatal(err)
	}
}
